const gettime = {
	//时间戳格式化yyyy-MM-dd hh:mm:ss
	formatDate(int,yy) {
		var datetime = new Date(int*1000);
		//date.setTime(value);
		var year = datetime.getFullYear();
		var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
		var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
		var hour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
		var minute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
		var second = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
		if (yy == "yyyy") {
			return year + "/" + month + "/" + date;
		} else {
			return year + "/" + month + "/" + date + " " + hour + ":" + minute + ":" + second;
		}
	},
	// 计算当前日期星座
	getHoroscope(date) {
	  let c = ['摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','摩羯']
	  date=new Date(date);
	  let month = date.getMonth() + 1;
	  let day = date.getDate();
	  let startMonth = month - (day - 14 < '865778999988'.charAt(month));
	  return c[startMonth]+'座';
	},
	// 计算指定时间与当前的时间差
	sumAge(data){
		let dateBegin = new Date(data.replace(/-/g, "/"));
		let dateEnd = new Date();//获取当前时间
		let dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
		let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
		let leave1=dateDiff%(24*3600*1000)    //计算天数后剩余的毫秒数
		let hours=Math.floor(leave1/(3600*1000))//计算出小时数
		//计算相差分钟数
		let leave2=leave1%(3600*1000)    //计算小时数后剩余的毫秒数
		let minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
		//计算相差秒数
		let leave3=leave2%(60*1000)      //计算分钟数后剩余的毫秒数
		let seconds=Math.round(leave3/1000)
		return dayDiff+"天 "+hours+"小时 ";
	},
	// 获取聊天时间（相差300s内的信息不会显示时间）
	getChatTime(v1,v2){
		v1=v1.toString().length<13 ? v1*1000 : v1;
		v2=v2.toString().length<13 ? v2*1000 : v2;
		if(((parseInt(v1)-parseInt(v2))/1000) > 300){
			return this.gettime(v1);
		}
	},
	// 人性化时间格式
	gettime(shorttime,isshier){
		shorttime=shorttime.toString().length<13 ? shorttime*1000 : shorttime;
		let now = (new Date()).getTime();
		let cha = (now-parseInt(shorttime))/1000;
		
		if (cha < 43200) {
			// 当天
			if(isshier==12){
				return this.dateFormat(new Date(shorttime),"{A} {h}:{ii}");
			}else{
				return this.dateFormat(new Date(shorttime),"{h}:{ii}");
			}
		} else if(cha < 518400){
			// 隔天 显示日期+时间
			if(isshier==12){
				return this.dateFormat(new Date(shorttime),"{Mon}月{DD}日 {A} {h}:{ii}");
			}else{
				return this.dateFormat(new Date(shorttime),"{Mon}月{DD}日 {h}:{ii}");
			}
			
		} else {
			// 隔年 显示完整日期+时间
			if(isshier==12){
				return this.dateFormat(new Date(shorttime),"{Y}-{MM}-{DD} {A} {h}:{ii}");
			}else{
				return this.dateFormat(new Date(shorttime),"{Y}-{MM}-{DD} {h}:{ii}");
			}
			
		}
	},
	
	parseNumber(num) {
		return num < 10 ? "0" + num : num;
	},
 
	dateFormat(date, formatStr) {
		let dateObj = {},
			rStr = /\{([^}]+)\}/,
			mons = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];
		 
		dateObj["Y"] = date.getFullYear();
		dateObj["M"] = date.getMonth() + 1;
		dateObj["MM"] = this.parseNumber(dateObj["M"]);
		dateObj["Mon"] = mons[dateObj['M'] - 1];
		dateObj["D"] = date.getDate();
		dateObj["DD"] = this.parseNumber(dateObj["D"]);
		dateObj["h"] = date.getHours();
		dateObj["hh"] = this.parseNumber(dateObj["h"]);
		dateObj["t"] = dateObj["h"] > 12 ? dateObj["h"] - 12 : dateObj["h"];
		dateObj["tt"] = this.parseNumber(dateObj["t"]);
		dateObj["A"] = dateObj["h"] > 12 ? '下午' : '上午';
		dateObj["i"] = date.getMinutes();
		dateObj["ii"] = this.parseNumber(dateObj["i"]);
		dateObj["s"] = date.getSeconds();
		dateObj["ss"] = this.parseNumber(dateObj["s"]);
	 
		while(rStr.test(formatStr)) {
			formatStr = formatStr.replace(rStr, dateObj[RegExp.$1]);
		}
		return formatStr;
	},
	dayOne(data){
	   let currenttime = Date.parse(new Date());  //获取当前时间
	   let daystime = Date.parse(new Date(data));
	   //let daystime1 = daystime*1000;             //结束时间 注意：乘以1000 是因为currenttime是毫秒数 所以这里也要变成毫秒数来计算
	   let endtime = daystime;
	   let last = (endtime-currenttime);
	   let lastday = Math.floor(last/(24*3600*1000));
	   return lastday+1
	},
	timeStanp(dataTime){
		if (dataTime === undefined) { return }
		  const time = dataTime
		  const unixTimestamp = new Date(time * 1000)
		  const commonTime = unixTimestamp.toLocaleString('en-GB', { hour12: false })
		  const tim = commonTime.split('/')
		  const year = tim[2].split(',')[0]
		  const month = tim[1]
		  const day = tim[0]
		  const tt = tim[2].split(',')[1]
		  if (time === '') {
		    return ''
		  } else {
		    return year + '/' + month + '/' + day + tt
		  }
	}
}

export default{
	gettime
}